from langchain.tools import tool
from langchain_community.agent_toolkits import GmailToolkit
from langchain_community.tools.gmail.create_draft import GmailCreateDraft


class CreateDraftTool:
    @tool("Create Draft")
    def create_draft(data):
        """
          Useful to create an email draft.
        The input to this tool should be a pipe (|) separated text
        of length 3 (three), representing who to send the email to,
        the subject of the email and the actual message.
        For example, `lorem@ipsum.com|Nice To Meet You|Hey it was great to meet you.`.
        """
        email, subject, message = data.split("|")
        gmail = GmailToolkit()
        draft = GmailCreateDraft(api_resource=gmail.api_resource)
        result = draft({"to": [email], "subject": subject, "message": message})
        return f"\nDraft created: {result}\n"
